package cn.percent.executor;

import cn.percent.config.BoundSql;
import cn.percent.config.Configuration;
import cn.percent.config.MappedStatement;
import cn.percent.utils.GenericTokenParser;
import cn.percent.utils.ParameterMapping;
import cn.percent.utils.ParameterMappingTokenHandler;
import org.apache.ibatis.session.ResultHandler;

import java.beans.IntrospectionException;
import java.lang.reflect.InvocationTargetException;
import java.sql.SQLException;
import java.util.List;

public interface Executor {
    ResultHandler NO_RESULT_HANDLER = null;

    public void execute(Configuration configuration, MappedStatement mappedStatement,Object... params) throws SQLException, ClassNotFoundException, NoSuchFieldException, IllegalAccessException;

    public <E> List<E> query(Configuration configuration, MappedStatement mappedStatement,Object... params) throws SQLException, ClassNotFoundException, NoSuchFieldException, IllegalAccessException, InstantiationException, InvocationTargetException, IntrospectionException;
}
